package com.cs.framework.ui.builder.json;

import org.springframework.core.io.Resource;

import com.cs.framework.common.util.IOUtils;
import com.cs.framework.common.util.JSONUtils;
import com.cs.framework.ui.builder.AbstractUIBuilder;
import com.cs.framework.ui.model.UIInfo;

/**
 * 通过json的抽象UI构建
 * 
 * @author hedongzhou
 *
 */
public abstract class AbstractJsonUIBuilder extends AbstractUIBuilder {

	/**
	 * 初始化
	 */
	public void init() {
	}

	/**
	 * 构建
	 * 
	 * @param id
	 *            主键ID
	 * @param path
	 *            xml路径
	 * @param cls
	 *            UI信息对象类型
	 * @return
	 */
	public UIInfo build(String fieldId, String path, Class<? extends UIInfo> cls) {
		Resource res = IOUtils.loadOneResource(String.format(path, fieldId));

		if (res != null) {
			return JSONUtils.toObject(res, cls);
		}

		return null;
	}

}
